package com.iknight.mgr.core.base;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import com.github.pagehelper.PageInfo;

/**
 * 
 * @author Jeryzym
 *
 * @param <T>
 * @param <PK>
 */
public interface BaseService<T extends Serializable, PK extends Serializable> {

	/**
	 * 
	 * @description saveOrUpdate 插入或更新操作
	 * @param record
	 * @return
	 *
	 */
	void save(T record);

	/**
	 * 
	 * @description 根据主键删除数据
	 * @param pkey
	 * @return
	 *
	 */
	void delete(PK pkey);

	/**
	 * 
	 * @description 根据主键查询记录
	 * @param pkey
	 * @return
	 *
	 */
	T selectOne(PK pkey);

	/**
	 * 
	 * @description 列表分页查询
	 * @param params
	 * @param pageStart
	 * @param pageSize
	 * @return
	 *
	 */
	PageInfo<T> selectPage(Map<String, Object> params, int pageStart, int pageSize);
}
